[小ネタ] Pythonでvenvが動かない!そんなときは!?
こんにちは、小澤です。
Python3.3以降で導入された公式版virtualenvともいうべきvenv。 環境によってはうまくい動作しないことがあるようです。今回はそんなときの対処法を見てみましょう。
エラーメッセージ
さて、venvを利用しようとすると以下のようなエラーが出ました。
$ python3 -m venv myvenv Error: Command '['/path/to/myvenv/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1
このエラー、どうやら環境乗ってはensurepipやpipがないことが原因のようです。
対処法
エラーメッセージで検索すると、以下のような対処法が見つかりました。
どうやら、解決はそんなに難しいことではないようです。 pipなし、venv環境を作って後から入れればいいと、いうことです。
掲載されているライブラリのURLはやや古いものなので、2017/06/01現在の最新バージョンでいれてみましょう。
まずは、venv環境を作ります。
python3 -m venv --without-pip myvenv source myvenv/bin/activate
次にsetuptoolsをいれます。
wget https://pypi.python.org/packages/source/s/setuptools/setuptools-3.5.1.tar.gz tar zxf setuptools-3.5.1.tar.gz cd setuptools-3.5.1 python setup.py install
次にpipをいれます。
wget https://pypi.python.org/packages/11/b6/abcb525026a4be042b486df43905d6893fb04f05aac21c32c638e939e447/pip-9.0.1.tar.gz tar zxf pip-9.0.1.tar.gz cd pip-9.0.1 python setup.py install
あとは、deactivateして、activateしなおせば、pipが利用可能になります。
ダウンロード先以外は、参照元のページに記載されている内容と変わらないですね。
この問題はUbuntuなどでよくあるようですが、今回は、以下の環境で発生しました。
$ cat /etc/system-release Amazon Linux AMI release 2016.09
Amazon Linuxを利用していて同様のエラーに遭遇したらこのやり方をお試しください。